package com.example.onlinemusic.mapper;

import com.example.onlinemusic.model.Music;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: LXW
 * Date: 2022-07-31
 * Time: 12:51
 */
@Mapper
public interface LoveMusicMapper {
    /**
     * 检查是否已经收藏过该音乐
     * @param user_id
     * @param music_id
     * @return
     */
    Music findLoveMusicByUserIdAndMusicId(int user_id, int music_id);

    /**
     * 点赞/收藏音乐
     * @param user_id
     * @param music_id
     * @return
     */
    boolean insertLoveMusic(int user_id, int music_id);

    /**
     * 如果没有传入具体的歌曲名，就查询收藏的所有音乐
     * @param user_id
     * @return
     */
    List<Music> findLoveMusicByUserId(int user_id);

    /**
     * 根据用户的ID和歌曲名称查询用户收藏的某首音乐
     * @param musicName
     * @param user_id
     * @return
     */
    List<Music> findLoveMusicByKeyAndUID(String musicName, int user_id);

    /**
     * 移除自己收藏的音乐，只是从收藏列表删除，歌曲本身还在数据库中
     * @param user_id
     * @param music_id
     * @return
     */
    int deleteLoveMusic(int user_id, int music_id);

    /**
     * 当删除库中的音乐时，同步删除lovemusic中的数据
     * @param music_id
     * @return
     */
    int deleteLoveMusicById(int music_id);
}
